package com.school.sports.entity;

/**
 * 操作类型枚举
 */
public enum OperationType {

    /**
     * 登录
     */
    LOGIN("登录", "LOGIN"),

    /**
     * 登出
     */
    LOGOUT("登出", "LOGOUT"),

    /**
     * 新增
     */
    CREATE("新增", "CREATE"),

    /**
     * 更新
     */
    UPDATE("更新", "UPDATE"),

    /**
     * 删除
     */
    DELETE("删除", "DELETE"),

    /**
     * 查询
     */
    QUERY("查询", "QUERY"),

    /**
     * 导出
     */
    EXPORT("导出", "EXPORT"),

    /**
     * 导入
     */
    IMPORT("导入", "IMPORT"),

    /**
     * 审核
     */
    REVIEW("审核", "REVIEW"),

    /**
     * 批量操作
     */
    BATCH("批量操作", "BATCH"),

    /**
     * 重置密码
     */
    RESET_PASSWORD("重置密码", "RESET_PASSWORD"),

    /**
     * 修改状态
     */
    CHANGE_STATUS("修改状态", "CHANGE_STATUS"),

    /**
     * 上传文件
     */
    UPLOAD("上传文件", "UPLOAD"),

    /**
     * 下载文件
     */
    DOWNLOAD("下载文件", "DOWNLOAD"),

    /**
     * 系统配置
     */
    CONFIG("系统配置", "CONFIG"),

    /**
     * 其他
     */
    OTHER("其他", "OTHER");

    private final String description;
    private final String code;

    OperationType(String description, String code) {
        this.description = description;
        this.code = code;
    }

    public String getDescription() {
        return description;
    }

    public String getCode() {
        return code;
    }

    /**
     * 根据code获取枚举
     */
    public static OperationType getByCode(String code) {
        for (OperationType type : values()) {
            if (type.getCode().equals(code)) {
                return type;
            }
        }
        return OTHER;
    }
}